﻿// 901 快速幂练习.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>



using namespace std;
/*
http://oj.daimayuan.top/course/22/problem/1043

给你两个数 a和 n，你需要求出 a的 n次方模 109+7的值。

输入格式
一行两个整数 a和 n。

输出格式
一个正整数表示答案。

样例输入
5 10000
样例输出
378321089
数据范围
对于 100%的数据，保证 1≤a,n≤109
*/

const int MOD = 1e9 + 7;
long long   a, n;


int main()
{
	cin >> a >> n;
	long long ans = 1;
	while (n != 0) {
		if (n & 1) {
			ans *= a;
			ans %= MOD;
		}
		n >>= 1;
		a = a * a%MOD;
	}

	cout << ans%MOD << endl;


	return 0;
}

 